mscJNeuralNet.trainingAlgorithms
Class SuperSABMomentum

java.lang.Object
  extended bymscJNeuralNet.trainingAlgorithms.AbstractTrainingAlgorithm
      extended bymscJNeuralNet.trainingAlgorithms.SuperSABMomentum
All Implemented Interfaces:
INetTrainingAlgorithm, observerPattern.Observable

public class SuperSABMomentum
extends AbstractTrainingAlgorithm

Das SuperSAB Lernverfahren nach Tollenaere mit Momentum-Term.
Implentiert nach der Arbeit T. Tollenaere - Supersab: Fast adaptive backpropagation with good scaling properties, 1990

Das SuperSAB Verfahren erweitert das Backpropagation Verfahren um variable Lernschrittweiten (Alpha ij) für jedes einzelne Gewicht. Diese Version wurde um einen Momentum-Term erweitert.

Die Aktualisierung der Kantengewichte wird wie folgt berechnet:

   Gradientenrichtung = Gradient Wij * Gradient WijAlt
   
   Falls Gradientenrichtung > 0
     Alpha ij *= Alpha Plus
   Falls Gradientenrichtung < 0
     Alpha ij *= Alpha Minus
 
                SuperSAB-Term                   Momentum-Term
   Delta Wij = -1 * Alpha ij * Gradient Wij + Momentum * Delta WijAlt
 

Created on 02.06.2004

Version:
05.06.2004
Author:
M. Serhat Cinar
See Also:
INetTrainingAlgorithm, AbstractTrainingAlgorithm, mscJNeuralNet.trainingAlgorithms

Constructor Summary
SuperSABMomentum()
           
 
Method Summary
 void applyWeightUpdate(int pOutputting, int pInputting)
          Derzeit leer.
 java.lang.String getAlgorithmName()
          Liefert den String "SuperSAB + Momentum" zurück.
 double[] getDefaultLearningParameters()
          Dieses Lernverfahren unterstützt folgende Parameter:
Index Bezeichnung Funktion 0 Momentum Momentum-Faktor für den Momentum-Term 1 Alpha Plus Faktor zum Erhöhen der variablen Lernschrittweite 2 Alpha Minus Faktor zum Verkleinern der variablen Lernschrittweite 3 Initial Alpha Initialwert für alle variablen Lernschrittweiten
 java.lang.String[] getLearningParameterNames()
          Dieses Lernverfahren unterstützt folgende Parameter:
Index Bezeichnung Funktion 0 Momentum Momentum-Faktor für den Momentum-Term 1 Alpha Plus Faktor zum Erhöhen der variablen Lernschrittweite 2 Alpha Minus Faktor zum Verkleinern der variablen Lernschrittweite 3 Initial Alpha Initialwert für alle variablen Lernschrittweiten
 double[] getLearningParameters()
          Dieses Lernverfahren unterstützt folgende Parameter:
Index Bezeichnung Funktion 0 Momentum Momentum-Faktor für den Momentum-Term 1 Alpha Plus Faktor zum Erhöhen der variablen Lernschrittweite 2 Alpha Minus Faktor zum Verkleinern der variablen Lernschrittweite 3 Initial Alpha Initialwert für alle variablen Lernschrittweiten
 void init()
          Derzeit leer.
 void setLearningParameters(double[] pLearningParameters)
          Dieses Lernverfahren unterstützt folgende Parameter:
Index Bezeichnung Funktion 0 Momentum Momentum-Faktor für den Momentum-Term 1 Alpha Plus Faktor zum Erhöhen der variablen Lernschrittweite 2 Alpha Minus Faktor zum Verkleinern der variablen Lernschrittweite 3 Initial Alpha Initialwert für alle variablen Lernschrittweiten Am Ende der Methode werden die Observer benachrichtigt.
 java.lang.String toString()
           
 
Methods inherited from class mscJNeuralNet.trainingAlgorithms.AbstractTrainingAlgorithm
getActualGradients, getCycle, getNet, getObserverManager, setActualGradients, setCycle, setNet
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SuperSABMomentum

public SuperSABMomentum()
Method Detail

init

public void init()
Description copied from class: AbstractTrainingAlgorithm
Derzeit leer.

Specified by:
init in interface INetTrainingAlgorithm
Overrides:
init in class AbstractTrainingAlgorithm
See Also:
INetTrainingAlgorithm.init()

applyWeightUpdate

public void applyWeightUpdate(int pOutputting,
                              int pInputting)
Description copied from class: AbstractTrainingAlgorithm
Derzeit leer.

Specified by:
applyWeightUpdate in interface INetTrainingAlgorithm
Overrides:
applyWeightUpdate in class AbstractTrainingAlgorithm
See Also:
INetTrainingAlgorithm.applyWeightUpdate(int, int)

setLearningParameters

public void setLearningParameters(double[] pLearningParameters)
Dieses Lernverfahren unterstützt folgende Parameter:
 Index  Bezeichnung   Funktion
   0    Momentum      Momentum-Faktor für den Momentum-Term
   1    Alpha Plus    Faktor zum Erhöhen der variablen Lernschrittweite
   2    Alpha Minus   Faktor zum Verkleinern der variablen Lernschrittweite
   3    Initial Alpha Initialwert für alle variablen Lernschrittweiten
 
Am Ende der Methode werden die Observer benachrichtigt.

Parameters:
pLearningParameters - Lernparameter für das Lernverfahren fest.
See Also:
INetTrainingAlgorithm.setLearningParameters(double[])

getLearningParameters

public double[] getLearningParameters()
Dieses Lernverfahren unterstützt folgende Parameter:
 Index  Bezeichnung   Funktion
   0    Momentum      Momentum-Faktor für den Momentum-Term
   1    Alpha Plus    Faktor zum Erhöhen der variablen Lernschrittweite
   2    Alpha Minus   Faktor zum Verkleinern der variablen Lernschrittweite
   3    Initial Alpha Initialwert für alle variablen Lernschrittweiten
 

Returns:
Aktuelle Lernparameter für das Lernverfahren.
See Also:
INetTrainingAlgorithm.getLearningParameters()

getLearningParameterNames

public java.lang.String[] getLearningParameterNames()
Dieses Lernverfahren unterstützt folgende Parameter:
 Index  Bezeichnung   Funktion
   0    Momentum      Momentum-Faktor für den Momentum-Term
   1    Alpha Plus    Faktor zum Erhöhen der variablen Lernschrittweite
   2    Alpha Minus   Faktor zum Verkleinern der variablen Lernschrittweite
   3    Initial Alpha Initialwert für alle variablen Lernschrittweiten
 

Returns:
Die Bezeichnungen für die Lernparameter.
See Also:
INetTrainingAlgorithm.getLearningParameterNames()

getDefaultLearningParameters

public double[] getDefaultLearningParameters()
Dieses Lernverfahren unterstützt folgende Parameter:
 Index  Bezeichnung   Funktion
   0    Momentum      Momentum-Faktor für den Momentum-Term
   1    Alpha Plus    Faktor zum Erhöhen der variablen Lernschrittweite
   2    Alpha Minus   Faktor zum Verkleinern der variablen Lernschrittweite
   3    Initial Alpha Initialwert für alle variablen Lernschrittweiten
 

Returns:
Initialwerte für die Lernparameter des Lernverfahrens.
See Also:
INetTrainingAlgorithm.getDefaultLearningParameters()

getAlgorithmName

public java.lang.String getAlgorithmName()
Liefert den String "SuperSAB + Momentum" zurück.

Returns:
Namen des Lernverfahrens.
See Also:
INetTrainingAlgorithm.getAlgorithmName()

toString

public java.lang.String toString()